package cn.regexp.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Setter
@Getter
@TableName("shop_goods")
/* 商品 */
public class ShopGoods {
    public static final int GOODS_DOWN = 0;     // 商品下架
    public static final int GOODS_UP = 1;       // 商品上架

    public static final int GOODS_SELL_OUT = 0;       // 商品售完
    public static final int GOODS_ON_SALE = 1;       // 商品正售

    public static final int IS_NORMAL = 0;  // 正常
    public static final int IS_HOT = 1;     // 热卖

    public static final int DELETE_NO = 0;  // 正常
    public static final int DELETE_YES = 1; // 已删除

    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品价格
     */
    private BigDecimal goodsPrice;

    /**
     * 商品数量
     */
    private Integer goodsNum;

    /**
     * 所属窗口id
     */
    private Long windowId;

    /**
     * 所属窗口名称
     */
    private String windowName;

    /**
     * 状态（0下架、1上架）
     */
    private Integer state;

    /**
     * 销售状态（0售完、1正售）
     */
    private Integer saleState;

    /**
     * 售量
     */
    private Integer saleNum;

    /**
     * 浏览量
     */
    private Integer viewNum;

    /**
     * 收藏量
     */
    private Integer collectNum;

    /**
     * 评论量
     */
    private Integer remarkNum;


    /**
     * 商品封面图
     */
    private String coverUrl;

    /**
     * 是否热卖（0正常、1热卖）
     */
    private Integer isHot;

    /**
     * 是否删除（0正常、1删除）
     */
    private Integer isDel;

    /**
     * 添加时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date insertTime;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date updateTime;

    /**
     * 菜品图片列表
     */
    @TableField(exist = false)
    List<ShopGoodsImage> imageList;

    /**
     * 菜品属性列表
     */
    @TableField(exist = false)
    List<ShopGoodsAttr> attrList;

    /**
     * 统计数量
     */
    @TableField(exist = false)
    private Integer count;
}